package com.top.jwtdemo.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
 * @author  Cjj
 * @data  2024/6/17 10:40
 * @blog  blog.jwt.top
 */

/**Target(自定义注解) ElementType.METHOD(注解：作用在方法上)**/
/**ElementType.TYPE(注解：作用在 接口 类 枚举上)**/
/**Retention(修饰注解 元注解 这个注解表示生命周期 )**/
/**RetentionPolicy(生命周期取决于RetentionPolicy.后面的值)**/
/**RetentionPolicy.RUNTIME(注解不仅保存到class文件中,jvm加载class文件之后,仍然存在)-(需要在运行时去动态获取注解信息)**/
/**RetentionPolicy.SOURCE(注解只保留源文件,当java文件编译成class文件,就会消失)-(只是做检查姓的操作比如@Override)**/
/**RetentionPolicy.CLASS(注解只保留class文件，但jvm加载class文件时候被遗弃,这个默认的生命周期)-(要在编译时进行一些预处理操作)**/
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Auth {


    /*定义一个boolean类型的 required默认值是true*/
    boolean required() default true;

}
